package co.baiku.boot.im.easemob.request;

import com.fasterxml.jackson.annotation.JsonProperty;

import java.io.Serializable;
import java.util.List;

/**
 * 环信创建群参数
 *
 * @author haojiaolong
 * @date 2020/11/7 11:37
 */
public class EasemobChatgroupsCreateRequest implements Serializable {

    /**
     * 群组名称，此属性为必须的
     */
    private String groupname;
    /**
     * 群组描述，此属性为必须的
     */
    private String desc;
    /**
     * 是否是公开群，此属性为必须的
     */
    @JsonProperty("public")
    private boolean publicValue;
    /**
     * 群组成员最大数（包括群主），值为数值类型，默认值200，最大值2000，此属性为可选的
     */
    private Integer maxusers;
    /**
     * 是否允许群成员邀请别人加入此群。 true：允许群成员邀请人加入此群，false：只有群主或者管理员才可以往群里加人。注：如果是公开群（public为true），则不允许群成员邀请别人加入此群
     */
    private boolean allowinvites;
    /**
     * 用户申请入群是否需要群主或者群管理员审批，默认是false。注：如果允许了群成员邀请用户进群（allowinvites为true），那么就不需要群主或群管理员审批了
     */
    private boolean members_only;
    /**
     * 群组的管理员，此属性为必须的
     */
    private String owner;
    /**
     * 群组成员，此属性为可选的，但是如果加了此项，数组元素至少一个（注：群主user1不需要写入到members里面）
     */
    private List<String> members;

    public EasemobChatgroupsCreateRequest() {
    }

    public EasemobChatgroupsCreateRequest(String groupname, boolean publicValue, Integer maxusers, String owner) {
        this.groupname = groupname;
        this.publicValue = publicValue;
        this.maxusers = maxusers;
        this.owner = owner;
    }

    public String getGroupname() {
        return groupname;
    }

    public void setGroupname(String groupname) {
        this.groupname = groupname;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public boolean isPublicValue() {
        return publicValue;
    }

    public void setPublicValue(boolean publicValue) {
        this.publicValue = publicValue;
    }

    public Integer getMaxusers() {
        return maxusers;
    }

    public void setMaxusers(Integer maxusers) {
        this.maxusers = maxusers;
    }

    public boolean isAllowinvites() {
        return allowinvites;
    }

    public void setAllowinvites(boolean allowinvites) {
        this.allowinvites = allowinvites;
    }

    public boolean isMembers_only() {
        return members_only;
    }

    public void setMembers_only(boolean members_only) {
        this.members_only = members_only;
    }

    public String getOwner() {
        return owner;
    }

    public void setOwner(String owner) {
        this.owner = owner;
    }

    public List<String> getMembers() {
        return members;
    }

    public void setMembers(List<String> members) {
        this.members = members;
    }
}
